<?php

/**
 * @author ducnhat
 * @email ddnhat@gmail.com
 * @copyright 2014
 */
 
class CheckoutController extends Zenddn_Controller_Action{
	
    public function init(){
		parent::init();
        parent::loadTemplate('magashop');
        $this->view->page = "home";
	}
	
	public function indexAction(){
	    $request = $this->_request;
        
        if($request->isPost()){
            $params = $request->getParams();
            
            $this->view->items = $request->getParam('items', false);
            $this->view->discount_price = $request->getParam('discount_price', false);
            $this->view->voucher_code = $request->getParam('voucher_code', false);
            $this->view->total = $request->getParam('total', false);
            $this->view->subtotal = $request->getParam('subtotal', false);
        }else{
            $this->_helper->_redirector->gotoRoute(array('controller' => 'cart', 'action' => 'index'), null, true);
        }
	}
    
    public function checkformAction(){
        $this->_helper->viewRenderer->setNoRender();
        $this->_helper->layout()->disableLayout();
        
    	$request = $this->_request;
        
        if($request->isXmlHttpRequest()){
            $validator = new Default_Form_ValidateOrder($request->getParams());
            
            if($validator->isError()){
                $data['isError'] = $validator->isError();
                $data['messageError'] = $validator->getMessageError();
                
                header('Content-type: application/json');
                echo json_encode($data);
            }else{
                return 1;
            }
        }else{
            $this->_helper->_redirector->gotoRoute(array('controller' => 'cart', 'action' => 'index'), null, true);
        }
    }
    
    public function saveOrderAction(){
        $this->_helper->viewRenderer->setNoRender();
        $this->_helper->layout()->disableLayout();
        
    	$request = $this->_request;
        
        if($request->isXmlHttpRequest()){
            $params = $request->getParams();
            $items = $request->getParam('items');
            
            $order['fullname'] = $params['fullname'];
            $order['address'] = $params['address'];
            $order['email'] = $params['email'];
            $order['phone_number'] = $params['phone_number'];
            $order['voucher_code'] = $params['voucher_code'];
            $order['subtotal'] = $params['subtotal'];
            
            if(isset($params['discount'])){
                $order['discount'] = $params['discount'];
            }else{
                $order['discount'] = 0;
            }
            
            $order['total'] = $params['total'];
            
            $ship = false;
            
            $strShip = "";
            
            if(isset($params['ship'])){
                $ship = true;
                $order['total'] += 20000;
                $strShip = "Phí vận chuyển: 20.000đ.";
            }
            
            $order['ship'] = $ship;
            
            $date = new Zend_Date();
            $curDate = $date->get(Zend_Registry::get('date_format_insert'));
            
            $order['created'] = $curDate;
            
            $items = $params['items'];
            
            $model = new Default_Model_Order();
            $order_id = $model->saveData($order, $items);
            
            if($order_id > 0){
                $quantity = count($items);
            
                //Tài khoản nhận tiền
            	$receiver="nhatdo@outlook.com";
            	//Khai báo url trả về 
            	$return_url="http://dietvirut.com/checkout/success";
            	//Giá của cả giỏ hàng 
            	$price = $order['total'];
            	//Mã giỏ hàng 
            	$order_code = "$order_id";
            	//Thông tin giao dịch
            	$transaction_info = "Thanh toán cho đơn hàng $order_id";
                //Khai báo đối tượng của lớp NL_Checkout
            	$nl = new Default_Model_Nganluong();
            	//Tạo link thanh toán đến nganluong.vn
            	$url = $nl->buildCheckoutUrl($return_url, $receiver, $transaction_info,  $order_code, $price);
                echo $url;
            }else{
                echo "false";
            }
        }else{
            $this->_helper->_redirector->gotoRoute(array(), 'cart', true);
        }
    }
    
    public function successAction(){
        $request = $this->_request;
    	$nganluong = new Default_Model_Nganluong();
        //Lấy thông tin giao dịch
    	$transaction_info = $request->getParam('transaction_info');//$_GET["transaction_info"];
    	//Lấy mã đơn hàng 
    	$order_code = $request->getParam('order_code');//$_GET["order_code"];
    	//Lấy tổng số tiền thanh toán tại ngân lượng 
    	$price = $request->getParam('price');//=$_GET["price"];
    	//Lấy mã giao dịch thanh toán tại ngân lượng
    	$payment_id = $request->getParam('payment_id');//=$_GET["payment_id"];
    	//Lấy loại giao dịch tại ngân lượng (1=thanh toán ngay ,2=thanh toán tạm giữ)
    	$payment_type = $request->getParam('payment_type');//=$_GET["payment_type"];
    	//Lấy thông tin chi tiết về lỗi trong quá trình giao dịch
    	$error_text = $request->getParam('error_text');//=$_GET["error_text"];
    	//Lấy mã kiểm tra tính hợp lệ của đầu vào 
    	$secure_code = $request->getParam('secure_code');//=$_GET["secure_code"];
        
        $check = $nganluong->verifyPaymentUrl($transaction_info, $order_code, $price, $payment_id, $payment_type, $error_text, $secure_code);
        
        $this->_helper->viewRenderer->setNoRender();
        $this->_helper->layout()->disableLayout();
    }
}